package com.groupten.Service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.groupten.Dao.ClassPaperDao;
import com.groupten.Entity.ClassPaperEntity;
import com.groupten.Vo.ClassVo;
import org.springframework.beans.factory.annotation.Autowired;


public interface ClassPaperService extends IService<ClassPaperEntity> {



    /**
     * 添加班级考试试卷情况
     * @param classPaper
     * @return 添加记录是否成功
     */
    Integer insertClassPaper(ClassPaperEntity classPaper);


    /**
     * 根据班级名删除相关试卷
     * @param className
     * @return 删除是否成功
     */
    Integer deleteByClassName(String className);

    /**
     * 根据试卷编号删除相关试卷
     * @param paperSessionId
     * @return 删除是否成功
     */
    Integer deleteByPaperSession(Integer paperSessionId);


    /**
     * 同时根据班级名和试卷编号删除试卷
     * @param className
     * @param paperSessionId
     * @return 删除是否成功
     */
    Integer deleteByClassNameAndPaperSession(String className, Integer paperSessionId);

    /**
     * 查找所有的班级考试情况
     * @param page
     * @param limit
     * @return 返回所有班级考试情况
     */
    IPage<ClassPaperEntity> selectAll(Integer page, Integer limit);

    /**
     * 根据班级名查找该班级所有的试卷
     * @param className
     * @param page
     * @param limit
     * @return 含有相关记录的IPage对象
     */
    IPage<ClassPaperEntity> selectByClassName(String className, Integer page, Integer limit);

    /**
     * 根据试卷编号查找参与该试卷考试的所有班级
     * @param paperSessionID
     * @param page
     * @param limit
     * @return 含有相关记录的IPage对象
     */
    IPage<ClassPaperEntity> selectByPaperSession(Integer paperSessionID,Integer page, Integer limit);

    /**
     * 根据班级名和试卷编号查找试卷
     * @param className
     * @param paperSessionId
     * @return 含有相关条件的记录
     */
    ClassPaperEntity selectByClassNameAndPaperSession(String className, Integer paperSessionId);

    Integer updateData(ClassPaperEntity classPaper);

    ClassVo getMaxAndMinInClass(ClassVo classVo);

}
